home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 4 / BBS in a Box - Macintosh - Volume IV (January 1992) (BBS in a Box).iso / Files / Tele / T / TNC < prev    next >
Encoding:
Text File  |  1987-09-27  |  6.1 KB  |  222 lines  |  [TEXT/MACA]

  1. (KA6DVN's mailbox procedure modified for TNC-2 by W9KFB on 9/20/87)
  2. QUIET
  3. CRAWL OFF
  4. (MAKE SURE ON 24TH LINE AND BACKSPACE OVER ANY GARBAGE THT MAY BE IN TNC)
  5. TYPE ^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M
  6. PAUSE 120
  7. TYPE ^M
  8. PAUSE
  9. TYPE ^H^H^H^H
  10. (GO SETUP THE STRINGS THAT WILL CONTAIN THE CALL AND THE NAME)
  11. (OF THE FOLKS THAT WE WANT THE PROCEDURE TO RECOGNISE)
  12. GOSUB SETUPST
  13. COPYINTO @0,                           *****   UNATTENDED Mode   *****
  14. :LOOP
  15. (THE FOLLOWING ONPANIC EXISTS SIMPLY SO THAT THE PROCEDURE CAN)
  16. (CHECK TO SEE IF OPERATOR DELETED THE MONITOR FILE WHILE)
  17. (THE PROCEDURE WAS OPERATING)
  18. (OTHERWISE, PROCEDURE MUST BE EXITTED AND RESTARTED TO CLEAR THE)
  19. ("A Message is waiting" MESSAGE ON LINE 1)
  20. (A VERY MINOR CONVIENENCE, BUT WHAT THE HEY)
  21. ONPANIC JUMPTO LOOP
  22. PANICAFTER 300
  23. ERASE @1
  24. (SEE IF A MONITOR FILE EXISTS - INFORM OPERATOR IF ONE DOES)
  25. USEROPENI 1,HD-20:PACKET:MONITOR
  26. IF ERROR JUMPTO ARNDTHIS
  27. (IF HERE, ONE DOES EXIST, SO INFORM OPERATOR)
  28. COPYINTO @1, A Message is waiting
  29. USERCLOSE 1
  30. :ARNDTHIS
  31. COPYINTO @2,                            Waiting for a CONNECT Packet
  32. @ ON
  33. SHOW@
  34. ( WAIT FOR DED ROMS TO SAY WE HAVE A CONNECTION.)
  35. (SURE HOPE THAT OTHER STATIONS ON FREQUENCY DON'T SEND THIS STRING AS)
  36. (DATA...A FALSE CONNECT INDICATION WOULD RESULT!!!!!)
  37. (BOY, SURE WISH RED WOULD BE FLEXIBLE ENOUGH TO)
  38. (LET US INTERFACE W/ THE TNC'S HOST MODE)
  39. PROMPT * CONNECTED to
  40. PAUSE 120
  41. (GOT A CONNECT PACKET - GET THE PERSONS CALL AND SEND GREETING IF)
  42. (I KNOW WHO IT IS)
  43. (GOT CALL FROM LINE 23 AS CARRIAGE RETURN FOLLOWS CONNECT MSG)
  44. GETLINE 23,B$
  45. (OPEN THE MONITOR FILE)
  46. RECA HD-20:PACKET:MONITOR
  47. TYPE ^M
  48. TYPE connected at 
  49. TIMEDATE A$
  50. TYPE A$
  51. TYPE ^M
  52. (THE PERSONS CALL IS LOCATED RIGHT BEFORE THE via)
  53. (change this for different roms)
  54. INSTR A%,B$,1, [
  55. (A% NOW CONTAINS OFFSET OF END OF THE PERSONS CALL)
  56. SUBTRACT A%,17
  57. (A% NOW CONTAINS LENGTH OF CALL AND CALL STARTS AT POSITION 18)
  58. (change the 17 in the subtract statement for different roms,)
  59. (as well as the 18 in the following MID$)
  60. MID$ C$,18,A%,B$
  61. (C$ NOW CONTAINS THE CALL)
  62. (NOW, GO SEE IF WE KNOW WHO IT IS)
  63. GOSUB FINDNAME
  64. (FINDNAME USES W$ AS WORK STRING)
  65. (THE NAME WILL BE IN Z$ IF IT EXISTS)
  66. LENGTH A%,Z$
  67. TEST A% <> 0
  68. (IF YES, WE KNOW WHO IT IS, SO GO SEND GREETING)
  69. IF YES GOSUB NAMEMSG
  70. (GO SEND A MESSAGE FILE IF ONE EXISTS)
  71. GOSUB SENDFILE
  72. (GO SEND THE COMMON MESSAGE)
  73. GOSUB MAINMSG
  74. (IF A DISCONNECT PACKET HASN'T BEEN RECEIVED IN 60 MINUTES, THEN)
  75. (FORCE A DISCONNECT) 
  76. ONPANIC JUMPTO DISC
  77. PANICAFTER 3600
  78. (LIST THE STATUS OF THE CHANNEL SO THAT THE PERSONS CALL WILL)
  79. (BE IN THE MONITOR FILE {A LAZY WAY OF DOING IT!!!})
  80. SHORT BREAK
  81. PAUSE 120
  82. TYPE C^M
  83. PAUSE 120
  84. TYPE CONV^M
  85. COPYINTO @2,                           Waiting for a DISCONNECT Packet
  86. @ ON
  87. SHOW@
  88. (CHANGE FOLLOWING PROMPT IF USING DIFFERENT ROMS)
  89. PROMPT * DISCONNECTED
  90. :DISC
  91. (SEND A DISCONNECT COMMAND TO THE TNC)
  92. SHORT BREAK
  93. PAUSE
  94. TYPE DI^M
  95. :CLOSEIT
  96. (CLOSE THE MONITOR FILE)
  97. CLOSE
  98. JUMPTO LOOP
  99.  
  100. :MAINMSG
  101. TYPE Ron is not at the terminal at the moment.^M
  102. TYPE Red Ryder will save any messages to disk that you might have for him.^M
  103. TYPE You have 60 minutes to complete, after which a disconnect^M
  104. TYPE will be forced, assuming you haven't already.^M
  105. TYPE You may start now and thank you for connecting to W9KFB. CUL - Ron.....^M
  106. RETURN
  107.  
  108. :NAMEMSG
  109. TYPE Hello 
  110. TYPE Z$
  111. TYPE ,
  112. TYPE ^M
  113. TYPE ^M
  114. RETURN
  115.  
  116. :SENDFILE
  117. (THIS WILL SEND A FILE NAMED MSGFILE LOCATED ON A DISC BY THE NAME OF)
  118. (RR10.0  IF  IT  EXISTS)
  119. (IF ONE DOESN'T EXIST, IT DOESN'T MATTER)
  120. (THE FILE IS SENT FOR EVERY CONNECT, WHETHER THEIR CALL IS IN THE)
  121. ("NAME" STRINGS OR NOT)
  122. USEROPENI 2,HD-20:PAKET:MSGFILE
  123. (IF ERROR, NO MESSAGE FILE, SO JUST RETURN)
  124. IF ERROR RETURN
  125. :SENDLOOP
  126. (IF HERE, A FILE EXISTS, SO TELL RR TO PUT THE FIRST "RECORD" IN)
  127. (THE STRING M$ - NOTE: A "RECORD" IS A BUNCH OF CHARACTERS FOLLOWED)
  128. (BY A CARRIAGE RETURN. IT IS YOUR RESPONSIBILITY TO MAKE SURE THAT)
  129. (EACH LINE TO BE TRANSMITTED ENDS WITH A CR!!)
  130. ('NOTHER NOTE: RED DROPS THE CR THAT ENDED THE RECORD, SO WE MUST)
  131. (SEND ONE LATER...)
  132. USERREAD 2,M$
  133. (IF ERROR, EITHER END OF FILE OR A REAL ERROR)
  134. (WE CAN'T DO ANYTHING IN THE PROCEDURE ABOUT REAL ERRORS SO,)
  135. (BLINDLY ASSUME IT IS EOF AND FINISH UP GRACEFULLY)
  136. IF ERROR JUMPTO SENDCRS
  137. (NO ERRORS AND NOT END OF FILE, SO SEND THE "RECORD")
  138. TYPE M$
  139. (SEND A CARRIAGE RETURN TO THE TNC TO TELL IT TO TRANSMIT THE LINE)
  140. TYPE ^M
  141. (GO GET THE NEXT RECORD, AND CONTINUE UNTIL EOF)
  142. JUMPTO SENDLOOP
  143.  
  144. :SENDCRS
  145. TYPE ^M
  146. TYPE ^M
  147. RETURN
  148.  
  149. :FINDNAME
  150. (FINDNAME CALLS EXTNAME, "PASSING" W$ AS A "PARAMETER")
  151. (EXTNAME COMPARES THE CALL IN W$ TO THE)
  152. (OPERATORS CALL IN C$ {PLACED THERE EARLIER})
  153. (IF THEY ARE THE SAME, EXTNAME RETURNS THE OPREATORS NAME IN Z$)
  154. (
  155. (THIS IS DONE FOR EACH STRING THAT WAS CREATED IN SETUPST, OR)
  156. (UNTIL A MATCH IS FOUND ON THE CALL)
  157. COPYINTO W$,D$
  158. (EXTNAME GETS THE NAME PART OF THE STRING)
  159. GOSUB EXTNAME
  160. (SEE IF Z$ HAS A NAME IN IT, IF SO WE ARE DONE HERE)
  161. LENGTH A%,Z$
  162. TEST A% <> 0
  163. (IF YES, RETURN TO THE CALLER, AND THE CALLER WILL TRANSMIT THE NAME)
  164. IF YES RETURN
  165. (IF HERE, NOT FOUND SO LOOK AT NEXT ONE)
  166. COPYINTO W$,E$
  167. GOSUB EXTNAME
  168. LENGTH A%,Z$
  169. TEST A% <> 0
  170. IF YES RETURN
  171. COPYINTO W$,F$
  172. GOSUB EXTNAME
  173. LENGTH A%,Z$
  174. TEST A% <> 0
  175. IF YES RETURN
  176. COPYINTO W$,G$
  177. GOSUB EXTNAME
  178. LENGTH A%,Z$
  179. TEST A% <> 0
  180. IF YES RETURN
  181. COPYINTO W$,H$
  182. GOSUB EXTNAME
  183. LENGTH A%,Z$
  184. TEST A% <> 0
  185. IF YES RETURN
  186. COPYINTO W$,I$
  187. GOSUB EXTNAME
  188. (NO MORE STRINGS LEFT TO EXAMINE, SO JUST RETURN)
  189. RETURN
  190.  
  191.  
  192. :EXTNAME
  193. (MAKE SURE Z$ IS EMPTY)
  194. ERASE Z$
  195. (SEE IF W$ HAS THE CALL WE ARE LOOKING FOR)
  196. CONTAINS W$,C$
  197. IF NO RETURN
  198. (IF HERE, THIS IS THE ONE, SO EXTRACT THE NAME)
  199. (FIND THE SPACE DELIMITER - )
  200. (SPACE WAS TYPED BY ME AFTER LAST COMMA IN NEXT INSTRUCTION)
  201. INSTR A%,W$,1, 
  202. (A% HAS OFFSET OF FIRST CHAR IN NAME)
  203. LENGTH B%,W$
  204. SUBTRACT B%,A%
  205. (B% HAS LENGTH OF NAME)
  206. RIGHT$ Z$,B%,W$
  207. (Z$ NOW HAS THE NAME)
  208. RETURN
  209.  
  210. :SETUPST
  211. (CREATE THE CALL/NAME STRINGS OF THE FOLKS WE TALK WITH THE MOST)
  212. (
  213. (IF USING MORE OR LESS {OR FOR THAT MATTER, DIFFERENT} STRINGS THAN)
  214. (WHAT ARE USED HERE, )
  215. (  FINDNAME  MUST BE MODIFIED TO HANDLE THE DIFFERENT STRINGS )
  216. COPYINTO D$,KB6NVH Brian
  217. COPYINTO E$,KB6NVH-15 Brian
  218. COPYINTO F$,N6AS Phil
  219. COPYINTO G$,N6AS-15 Phil
  220. COPYINTO H$,N6PHJ-15 Ray
  221. COPYINTO I$,W9KFB Ron
  222. RETURN